package top.dotgo.kit;

import lombok.Getter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * @author jornl
 * @date 2020/2/4 17:40 星期二
 */
@Component
@ConfigurationProperties(prefix = "dotgo")
public class CfgKit {

    /**
     * 项目名称
     */
    @Getter
    private static String name;
    /**
     * 版本
     */
    @Getter
    private static String version;

    /**
     * 忽略 token 的路径
     */
    @Getter
    private static String[] ignorePath;


    @Getter
    private static boolean kaptcha;

    /**
     * 是否debug
     */
    @Getter
    private static boolean debug;
    /**
     * 密码盐
     */
    @Getter
    private static String jwtSalt;
    /**
     * jwt过期时间 秒单位  默认 30天 (强制每30天登陆一次)
     */
    @Getter
    private static Integer jwtExpire;
    /**
     * SESSION失效时间，默认 7天内登录后，自动续期，超过7天 需要登录
     */
    @Getter
    private static Integer sessionExpire;
    /**
     * 最大密码错误次数
     */
    @Getter
    private static Integer maxRetryCount;

//
//    /**
//     * 账号对应的默认 公司
//     */
//    private final static Map<Long, Long> ACC_DEF_COMPANY_MAP = new HashMap<>(5);
//
//    public static void setAccDefCompany(Long accId, Long companyId) {
//        ACC_DEF_COMPANY_MAP.put(accId, companyId);
//        RedisKit.hset(ACC_DEF_COMPANY, String.valueOf(accId), companyId);
//    }
//
//
//    public static Long getAccDefCompany(Long accId) {
//        if (ACC_DEF_COMPANY_MAP.containsKey(accId)) {
//            return ACC_DEF_COMPANY_MAP.get(accId);
//        }
//        String companyId = RedisKit.hget(ACC_DEF_COMPANY, String.valueOf(accId), String.class);
//        if (companyId != null) {
//            return Long.valueOf(companyId);
//        }
//        return null;
//    }


    public void setName(String name) {
        CfgKit.name = name;
    }

    public void setVersion(String version) {
        CfgKit.version = version;
    }


    public void setIgnorePath(String[] ignorePath) {
        CfgKit.ignorePath = ignorePath;
    }

    public void setKaptcha(boolean kaptcha) {
        CfgKit.kaptcha = kaptcha;
    }


    public void setDebug(boolean debug) {
        CfgKit.debug = debug;
    }

    public void setJwtSalt(String jwtSalt) {
        CfgKit.jwtSalt = jwtSalt;
    }

    public void setJwtExpire(Integer jwtExpire) {
        CfgKit.jwtExpire = jwtExpire;
    }

    public void setSessionExpire(Integer sessionExpire) {
        CfgKit.sessionExpire = sessionExpire;
    }

    public void setMaxRetryCount(Integer maxRetryCount) {
        CfgKit.maxRetryCount = maxRetryCount;
    }

}
